Шаг 138 - Свойство Attributes.

Описание
Задает или возвращает значение, указывающее одну или несколько характеристик объекта Field, Relation или TableDef.

Значение
Задаваемое или возвращаемое значение имеет тип данных Long, значением по умолчанию является 0.
Для объекта Field значение свойства задает характеристики поля, представляемого данным объектом. Значение данного свойства может быть выражено как сумма констант из следующего списка:

dbAutoIncrField			Значение поля в новой записи автоматически увеличивается на 
				уникальное значение типа Long, которое невозможно изменить (в 
				рабочей области Microsoft Jet, поддерживается только для таблиц 
				баз данных Microsoft Jet (.mdb)).
dbDescending			Поле сортируется по убыванию (от "Я" до "А" и от 100 до 0) (только 
				для объектов Field из семейства Fields объекта Index).  Если данная 
				константа не задана, то по умолчанию поле сортируется по возрастанию.  
				Значение по умолчанию определено для полей объектов Index и TableDef 
				(только в рабочей области Microsoft Jet).
dbFixedField			Поле имеет постоянный размер (задается по умолчанию для числовых полей).
dbHyperlinkField			Поле содержит сведения о гиперссылке (только для полей Memo).
dbSystemField			Поле содержит сведения о реплицикации для реплик; удаление полей этого 
				типа не допускается (только в рабочей области Microsoft Jet).
dbUpdatableField			Значение поля можно изменять.
dbVariableField			Поле имеет переменный размер (только для текстовых полей).

Для объекта Relation значение свойства задает характеристики связи, представляемой данным объектом. Значение данного свойства может быть выражено как сумма констант из следующего списка:

dbRelationUnique			Связь имеет тип отношения "один-к-одному".
dbRelationDontEnforce		Отключается режим обеспечения целостности данных.
dbRelationInherited		Связь определена не в текущей базе данных, две 
				присоединенные таблицы содержатся во внешней базе данных.
dbRelationUpdateCascade		Задается режим каскадного обновления.
dbRelationDeleteCascade		Задается режим каскадного удаления.

Если в свойстве Attributes объекта Relation задан режим каскадных операций, то ядро базы данных Microsoft Jet автоматически обновляет или удаляет записи в одной или нескольких подчиненных таблицах при соответствующих изменениях в главных таблицах.
Предположим, например, что задан режим каскадного удаления для связи между таблицами "Клиенты" и "Заказы". При удалении записей из таблицы "Клиенты" будут автоматически удаляться связанные записи из таблицы "Заказы". Кроме того, если задано каскадное удаление для связей между таблицей "Заказы" и другими таблицами, то при удалении записей из таблицы "Клиенты" будут удалены связанные записи и в этих таблицах.
Для объекта TableDef свойство Attributes задает характеристики таблицы, представляемой данным объектом. Значение данного свойства может быть выражено как сумма констант типа Long из следующего списка:

dbAttachExclusive			Указывает для баз данных, использующих ядро Microsoft Jet, что таблица является 
				присоединенной таблицей и открыта в режиме монопольного доступа.  Эта константа 
				может быть задана для добавленного объекта TableDef для локальной, но не для 
				удаленной таблицы.
dbAttachSavePWD			Указывает для баз данных, использующих ядро Microsoft Jet, что код пользователя 
				и пароль доступа к удаленной присоединенной таблице следует сохранить вместе со 
				сведениями о присоединении.  Эта константа может быть задана для добавленного 
				объекта TableDef для удаленной, но не для локальной таблицы.
dbSystemObject			Таблица является системной таблицей ядра Microsoft Jet.  Эта константа может 
				быть задана для добавленного объекта TableDef.
dbHiddenObject			Таблица является скрытой таблицей ядра Microsoft Jet.  Эта константа может 
				быть задана для добавленного объекта TableDef.
dbAttachedTable			Таблица является присоединенной таблицей из базы данных, не являющейся источником 
				данных ODBC, например, из базы данных с ядром Microsoft Jet или базы данных Paradox 
				(только чтение).
dbAttachedODBC			Таблица является присоединенной таблицей из базы данных ODBC, например, из базы 
				данных Microsoft SQL Server (только чтение).

Замечания
Для объекта, еще не добавленного в семейство, данное свойство доступно для чтения/записи.
Для добавленного объекта Field использование свойства Attributes зависит от того, какой из объектов содержит семейство Fields.

Index		Чтение/запись, пока объект TableDef, в который включен объект Index, не добавлен в объект 
		Database; после этого только чтение.
QueryDef		Только чтение.
Recordset		Только чтение.
Relation		Не поддерживается.

Для добавленного объекта Relation свойство Attributes доступно только для чтения.
Для добавленного объекта TableDef свойство доступно для чтения/записи, хотя, если объект уже добавлен в семейство, невозможно задать все константы, как отмечалось в разделителе "Задаваемые и возвращаемые значения".
Допускается одновременное задание нескольких атрибутов, при этом следует просто просуммировать соответствующие константы. Любые неверные (не имеющие смысла) значения свойства будут проигнорированы без возникновения ошибки.

Пример
Следующая программа отображает свойство Attributes объектов Field, Relation и TableDef в базе данных "Борей".

Sub AttributesX()

	Dim dbsNorthwind As Database
	Dim fldLoop As Field
	Dim relLoop As Relation
	Dim tdfloop As TableDef

	Set dbsNorthwind = OpenDatabase("Борей.mdb")

	With dbsNorthwind
		' Отображает атрибуты полей объекта TableDef.
		Debug.Print "Атрибуты полей таблицы: " & .TableDefs(0).Name
		For Each fldLoop In .TableDefs(0).Fields
			Debug.Print "    " & fldLoop.Name & " = " & fldLoop.Attributes
		Next fldLoop
		' Отображает атрибуты связей в базе данных "Борей".
		Debug.Print "Атрибуты связей в " & .Name 
		For Each relLoop In .Relations
			Debug.Print "    " & relLoop.Name & " = " & relLoop.Attributes
		Next relLoop
		' Отображает атрибуты таблиц в базе данных "Борей".
		Debug.Print "Атрибуты таблиц в " & .Name 
		For Each tdfloop In .TableDefs
			Debug.Print "    " & tdfloop.Name & " = " & tdfloop.Attributes
		Next tdfloop
		.Close
	End With
End Sub
Hosted by uCoz